<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        const pro1 = new Promise((resolve, reject) => {
            throw 1;
        });


        // 异步代码开始执行，首先pro1为已决阶段状态，他里面的所有 catchable 都按顺序排列在事件队列

        const pro2 = pro1.then(result => {   
            return result * 2;
        }, err => {
            return err * 3;
        });

        pro1.catch(err => {   // 每次调用then或者catch都会返回一个新的promise对象
            return err * 2;
        })

        
        pro2.then(result => {
            console.log(result * 2);  // 在事件队列里面，它排在 pro1 的 catchable2 的后面
        }, err => {
            console.log(err * 3);  
        });

        //输出：6
    </script>
</body>

</html>